#include <sys/types.h>
#include <unistd.h>
#include <cstdlib>
#include <cstdio>

int main(){
    pid_t pid;
    int status;
    printf("vfork\n");
    if((pid = vfork()) == 0){
        // 子进程处理
        sleep(2);
        printf("child running.\n");
        printf("child sleeping.\n");
        sleep(5);
        printf("child dead.\n");
        exit(0);
    }else if(pid > 0){
        // 父进程处理
        printf("parent running.\n");
        printf("parent exit.\n");
        exit(0);
    }else{
        // 调用失败处理
        printf("fork error.\n");
        exit(0);
    }
}